package sensors;
import flixel.addons.tile.FlxTilemapExt;

/*
 * Clase para representar a los sensores cuyo comportamiento depende de otros
 * sensores. Guarda un arreglo de sensores que es inicializado en la primera iteración
 * de update() para asegurarse que todos los sensores han sido cargados
 */
class DependentSensor extends BasicSensor
{
	private var _parents: Array<BasicSensor>;
	private static var _sensorsTileIndex: Map<Int, DependentSensor> = new Map<Int, DependentSensor>();

	public function new(X: Float, Y: Float, map: FlxTilemapExt){
 		super(X, Y, map);
 		_parents = new Array<BasicSensor>();
 		_sensorsTileIndex.set(_iTile, this);
	}

	

	public static function getSensorByTileIndex(tileIndex: Int): DependentSensor
	{
		var s: DependentSensor = _sensorsTileIndex.get(tileIndex);
		if(s != null)
		{
			return s;
		}
		else
		{
			throw("ERROR: No se encontró DependentSensor con indice: "+tileIndex);
		}
	}

	public function registerParentSensor(sensor: BasicSensor)
	{
		_parents.push(sensor);
	}
}